Behavior based notifications

ABSTRACT

A computing system, computer-implemented method, and computer program product are provided for facilitating behavior based notifications concerning multiparty communication threads. According to an implementation, the computer-implemented method may include defining a rules set associated with a user for participation in a multiparty communication thread. The method may also include evaluating a plurality of communications associated with the multiparty communication thread. The method may also include determining when a given communication associated with the multiparty communication thread satisfies one or more of the rules included within the rules set. The method may further include delivering the given communication based upon, at least in part, a determining that the given communication satisfies the one or more rules.

TECHNICAL FIELD

The present disclosure generally relates to systems and method forelectronic collaboration, and more particularly relates to providingbehavior based notifications of communications within a multipartycommunication thread.

BACKGROUND

Various collaboration systems exist for enabling individuals to engagein collaborate activities, such as working together on projects, sharinginformation, and the like. Collaboration systems can be particularlyuseful in allowing geographically dispersed individuals to interact andwork with one another. Using various different collaboration systems, ormulti-functional collaboration systems, individuals who aregeographically remote from one another may, for example, exchange andshare content, such as ideas, thoughts, or creations, and participate ininteractive discussions using email or other group messaging systems,blogs, forums, wikis, and social networking applications. However,sometimes the ease with which information may be shared with others cancreate a situation of information overload. Because large numbers ofpeople can be added to an electronic exchange or discussion, the resultcan often be that individuals who may not need, or want, to be involvedin the exchange may be added anyway. Once a person is added to theexchange, it becomes her task to now manage the often large volume ofmessages arising from the exchange.

SUMMARY OF DISCLOSURE

According to an implementation, a computer-implemented method mayinclude defining, by a processor, a rules set associated with a user forparticipation in a multiparty communication thread. The method may alsoinclude evaluating, by the processor, a plurality of communicationsassociated with the multiparty communication thread. The method may alsoinclude determining when a given communication associated with themultiparty communication thread satisfies one or more of the rulesincluded within the rules set. The method may further includedelivering, by the processor, the given communication based upon, atleast in part, a determining that the given communication satisfies theone or more rules.

One or more of the following features may be included. The rules set maybe based upon, at least in part, a user profile established for theuser. The rules set may be based upon, at least in part, a roleassociated with the user. The rules set may be based upon, at least inpart, a historical behavior pattern associated with the user formultiparty communication threads.

The rules set may be based upon, at least in part, a number ofcommunications included within the multiparty communication thread. Therules set may be based upon, at least in part, a time-wise aspect of themultiparty communication thread. The rules set may be based upon, atleast in part, an indication of a completion of an action associatedwith the multiparty communication thread.

According to another implementation, a computer program product mayinclude a non-transitory computer-readable medium having a plurality ofinstructions stored on it. When the instructions are executed by aprocessor, the instructions may cause the processor to performoperations including defining a rules set associated with a user forparticipation in a multiparty communication thread. Instructions mayalso be included for evaluating a plurality of communications associatedwith the multiparty communication thread. Instructions may also beincluded for determining when a given communication associated with themultiparty communication thread satisfies one or more of the rulesincluded within the rules set. Instructions may further be included fordelivering the given communication based upon, at least in part, adetermining that the given communication satisfies the one or morerules.

One or more of the following features may be included. The rules set maybe based upon, at least in part, a user profile established for theuser. The rules set may be based upon, at least in part, a roleassociated with the user. The rules set may be based upon, at least inpart, a historical behavior pattern associated with the user formultiparty communication threads.

The rules set may be based upon, at least in part, a number ofcommunications included within the multiparty communication thread. Therules set may be based upon, at least in part, a time-wise aspect of themultiparty communication thread. The rules set may be based upon, atleast in part, an indication of a completion of an action associatedwith the multiparty communication thread.

According to yet another implementation, a computing system may includea processor device, and a memory architecture coupled with the processordevice. The processor device may be configured for defining a rules setassociated with a user for participation in a multiparty communicationthread. The processor device may also be configured for evaluating aplurality of communications associated with the multiparty communicationthread. The processor device may also be configured for determining whena given communication associated with the multiparty communicationthread satisfies one or more of the rules included within the rules set.The processor device may further be configured for delivering the givencommunication based upon, at least in part, a determining that the givencommunication satisfies the one or more rules.

One or more of the following features may be included. The rules set maybe based upon, at least in part, a user profile established for theuser. The rules set may be based upon, at least in part, a roleassociated with the user. The rules set may be based upon, at least inpart, a historical behavior pattern associated with the user formultiparty communication threads.

The rules set may be based upon, at least in part, a number ofcommunications included within the multiparty communication thread. Therules set may be based upon, at least in part, a time-wise aspect of themultiparty communication thread.

The details of one or more implementations are set forth in theaccompanying drawings and the description below. Other features andadvantages will become apparent from the description, the drawings, andthe claims.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a diagrammatic view of a distributed computing networkincluding a computing device that executes a notification processaccording to an implementation of the present disclosure;

FIG. 2 is a flowchart of the notification process of FIG. 1, accordingto an implementation of the present disclosure;

FIG. 3 is a diagrammatic view of the computing device of FIG. 1,according to an implementation of the present disclosure.

Like reference symbols in the various drawings indicate like elements.

DETAILED DESCRIPTION

Individuals may often engage in collaborations using electroniccollaboration systems to share content with one another. Variousdifferent collaboration systems may allow users to exchange messages orcontent directly with each other, such as via email or other messagingsystems; to post content to a shared space, such as a shared team space,blog, forum, social networking sites, wiki, or the like; or to otherwisetransmit content to other participants of a collaboration session.Often, with such collaboration systems, there is little, or even no,real additional overhead associated with adding additional people to theexchange of content, either in terms of computing resources or in termsof time and effort required by an individual to add the other people. Asa result, a situation of over-inclusion may occur, or even become thenorm, with many people who may not have a need, or even an interest, inthe exchange becoming party to the collaboration. For example, a managermay initiate a project, and may want to be informed of the outcome.However, the manager may not need, or want, to receive all of theexchanges that occur as a team works on the project. Consistent withsome embodiments, the present disclosure may provide an opportunity forindividual to control, or manage, the content that they may receive as aresult of being included in such exchanges. In some embodiments, thepresent disclosure may provide a dynamic approach to understanding thecontext of a person with respect to an exchange of content, and mayprovide her with an appropriate level of awareness and/or engagementwith the ongoing exchanges.

For example, in some illustrative embodiments, the present disclosuremay develop and apply rules for managing a user's involvement in and/orawareness of a multiparty communication thread that the user is includedon. In general, a multiparty communication thread may include a seriesof communications (such as emails; postings to a team space, wiki, blog,forum, etc.; or other content exchanges among the participants) that maygenerally surround a common topic and an at least partially overlappingparticipant set (e.g. which may grow or shrink over time as participantsare added or removed from the communication thread). An example of amultiparty communication thread may include an email chain, including anoriginal email and a series of subsequent replies and forwards of theoriginal email. As the email chain progresses, additional recipients maybe added to the chain, and some participants may be removed from thechain. Other multiparty communication threads may similarly allowexchanges of ideas and content among a group of participants (e.g.,which may vary overtime) with the participants either directly receivingnew contributions to the communication thread, or being alerted of suchnew contributions. The rules that may be developed and appliedconsistent with the present disclosure may influence or control when,if, and/or how a participant of the multiparty communication threadreceives updates (e.g., new contributions or communications) to thecommunication thread. Receiving updates to the communication thread mayinclude receiving the update itself, and/or receiving some notificationthat an update has occurred.

In some embodiments, the rules that are developed and/or applied forcontrolling how a user receives updates to the communication thread maybe based upon, at least in part, a role of the user with respect to thecommunication thread, one or more of the other participants in thecommunication thread, an organization (such as a company), or the like.In some embodiments, the rules may be based upon, at least in part, acontext of the user relative to the subject of the communications.Further, in some embodiments, the rules may be based upon, at least inpart, an awareness of the user's past behavior with respect to similarmultiparty communication threads. The awareness of the user's pastbehavior may include an awareness of the subject matter of thecommunication thread, a role of the user, and the like.

In some embodiments, the present disclosure may implement the rules toanalyze updates to the multiparty communication thread to determinewhen, or if, the user should receive the update. As such, the presentdisclosure may manage the communications arising from the multipartycommunication thread that may actually be provided to the user. In someembodiments, managing the communications that may actually be providedto the user may allow the user to achieve a useful and productiveawareness of the topic of the communication thread, a status of thediscussion, or state of a project, or the like, without beingoverwhelmed by a volume of communications that may not be valuable tothe user.

Referring to FIG. 1, there is shown notification process 10. For thefollowing discussion, it is intended to be understood that notificationprocess 10 may be implemented in a variety of ways. For example,notification process 10 may be implemented as a server-side process, aclient-side process, or a server-side/client-side process.

For example, notification process 10 may be implemented as a purelyserver-side process via notification process 10 s. Alternatively,notification process 10 may be implemented as a purely client-sideprocess via one or more of client-side application 10 c 1, client-sideapplication 10 c 2, client-side application 10 c 3, and client-sideapplication 10 c 4. Alternatively still, notification process 10 may beimplemented as a server-side/client-side process via server-sidenotification process 10 s in combination with one or more of client-sideapplication 10 c 1, client-side application 10 c 2, client-sideapplication 10 c 3, and client-side application 10 c 4. In such anexample, at least a portion of the functionality of notification process10 may be performed by notification process 10 s and at least a portionof the functionality of notification process 10 may be performed by oneor more of client-side application 10 c 1, 10 c 2, 10 c 3, and 10 c 3.

Accordingly, notification process 10 as used in this disclosure mayinclude any combination of notification process 10 s, client-sideapplication 10 c 1, client-side application 10 c 2, client-sideapplication 10 c 3, and client-side application 10 c 4.

Referring also to FIG. 2, and as will be discussed in greater detailbelow, notification process 10 may define 100 a rules set associatedwith a user for participation in a multiparty communication thread.Notification process 10 may also evaluate 102 a plurality ofcommunications associated with the multiparty communication thread.Notification process may also determine 104 when a given communicationassociated with the multiparty communication thread satisfies one ormore of the rules included within the rules set. Notification process 10may further deliver 106 the given communication based upon, at least inpart, a determining that the given communication satisfies the one ormore rules.

Notification process 10 s may be a server application and may reside onand may be executed by computing device 12, which may be connected tonetwork 14 (e.g., the Internet or a local area network). Examples ofcomputing device 12 may include, but are not limited to: a personalcomputer, a server computer, a series of server computers, a minicomputer, a mainframe computer, or a dedicated network device.

The instruction sets and subroutines of notification process 10 s, whichmay be stored on storage device 16 coupled to computing device 12, maybe executed by one or more processors (not shown) and one or more memoryarchitectures (not shown) included within computing device 12. Examplesof storage device 16 may include but are not limited to: a hard diskdrive; a tape drive; an optical drive; a RAID device; an NAS device, aStorage Area Network, a random access memory (RAM); a read-only memory(ROM); and all forms of flash memory storage devices.

Network 14 may be connected to one or more secondary networks (e.g.,network 18), examples of which may include but are not limited to: alocal area network; a wide area network; or an intranet, for example.

Examples of client-side applications 10 c 1, 10 c 2, 10 c 3, 10 c 4 mayinclude but are not limited to, one or more of an email application, asocial networking application, a web browser, or a specializedapplication (e.g., an application running on a mobile platform). Theinstruction sets and subroutines of client-side application 10 c 1, 10 c2, 10 c 3, 10 c 4, which may be stored on storage devices 20, 22, 24, 26(respectively) coupled to client electronic devices 28, 30, 32, 34(respectively), may be executed by one or more processors (not shown)and one or more memory architectures (not shown) incorporated intoclient electronic devices 28, 30, 32, 34 (respectively). Examples ofstorage devices 20, 22, 24, 26 may include but are not limited to: harddisk drives; tape drives; optical drives; RAID devices; random accessmemories (RAM); read-only memories (ROM), and all forms of flash memorystorage devices.

Examples of client electronic devices 28, 30, 32, 34 may include, butare not limited to, personal computer 28, laptop computer 30, mobilecomputing device 32, notebook computer 34, a netbook computer (notshown), a server computer (not shown), a gaming console (not shown), adata-enabled television console (not shown), and a dedicated networkdevice (not shown). Client electronic devices 28, 30, 32, 34 may eachexecute an operating system.

Users 36, 38, 40, 42 may access notification process 10 directly throughnetwork 14 or through secondary network 18. Further, notificationprocess 10 may be accessed through secondary network 18 via link line44.

The various client electronic devices (e.g., client electronic devices28, 30, 32, 34) may be directly or indirectly coupled to network 14 (ornetwork 18). For example, personal computer 28 is shown directly coupledto network 14. Further, laptop computer 30 is shown wirelessly coupledto network 14 via wireless communication channels 46 established betweenlaptop computer 30 and wireless access point (WAP) 48. Similarly, mobilecomputing device 32 is shown wirelessly coupled to network 14 viawireless communication channel 50 established between mobile computingdevice 32 and cellular network/bridge 52, which is shown directlycoupled to network 14. WAP 48 may be, for example, an IEEE 802.11a,802.11b, 802.11g, 802.11n, Wi-Fi, and/or Bluetooth device that iscapable of establishing wireless communication channel 46 between laptopcomputer 30 and WAP 48. Additionally, personal computer 34 is showndirectly coupled to network 18 via a hardwired network connection.

In some embodiments, notification process 10 may communicate with,interact with, and/or include a component or module of a collaborationapplication (e.g., collaboration application 54). As is generally known,a collaboration application (e.g., collaboration application 54) maygenerally facilitate text, graphical, multi-media, audio, and/or videocollaboration between individuals as participants in a multipartycommunication thread. Examples of collaboration application 54 mayinclude, but are not limited to, an email application, an applicationthat supports forums for user posted content, wikis, social networkingapplications, team rooms, and the like. For example, collaborationapplication 54 may allow multiple users to exchange content (such astext-based content, graphical content, etc.) for consumption by otherparticipants in the multiparty communication thread. The multipartycommunication thread may include two or more participants in thecommunication thread. In some embodiments, a multiparty communicationthread may include significantly more than two participants.

In an embodiment, the instruction sets and subroutines of electroniccollaboration application 54 may be stored, e.g., on storage device 16associated with server computer 12, which executes electroniccollaboration application 54, and/or another suitable storage device.Further, users (e.g., one or more of users 36, 38, 40, 42) may accesselectronic collaboration application 54 in order to participate in acommunication thread (such as an email thread; an exchange of postingsto a forum, wiki, or social networking page or site; or the like). Theusers may access electronic collaboration application 54 via one or moresuitable applications, such as client side applications 10 c 1-10 c 4(e.g., which may include an email application, a web browser) and/or viaa different application (not shown).

As generally discussed above, a portion and/or all of the functionalityof notification process 10 may be provided by one or more of client sideapplications 10 c 1-10 c 4. For example, in some embodimentsnotification process 10 (and/or client-side functionality ofnotification process 10) may be included within and/or may interact withclient-side applications 10 c 1-10 c 4, which may include client sideelectronic collaboration applications, web browsers, or anotherapplication. In other embodiments, a portion and/or all of thefunctionality of notification process may be provided by electroniccollaboration application 54, and/or another server-side application.Various additional/alternative configurations may be equally utilized.

As generally discussed above with reference to FIG. 2, notificationprocess 10 may define 100 a rules set associated with a user forparticipation in a multiparty communication thread. Notification process10 may also evaluate 102 a plurality of communications associated withthe multiparty communication thread. Notification process may alsodetermine 104 when a given communication associated with the multipartycommunication thread satisfies one or more of the rules included withinthe rules set. Notification process 10 may further deliver 106 the givencommunication based upon, at least in part, a determining that the givencommunication satisfies the one or more rules.

In an illustrative example, notification process 10 may facilitatemanaging a user's involvement in a multiparty communication thread,e.g., by controlling or adapting when, or if, the user receives updatesto the communication thread. For example, the communication thread maybe related to the development, testing, and quality assurance associatedwith a new feature to a software product. The user may be a manageroverseeing several software development teams, and as such may not needto participate in every communication associated with the development,testing, and quality assurance of the particular feature of theparticular software product. Rather, the user may only be generallyinterested in knowing that progress on the project is being made, thecurrent state of the project, and/or when the project has beencompleted. As such, the level of user's involvement (e.g., in terms ofthe number, timing, and/or content of the updates to the communicationthread) may be adapted to provide an improved degree of value for theuser (e.g., in terms of receiving the necessary information but notexpending unnecessary time on communications from the thread). That is,notification process 10 may allow the user to receive updates frequentlyenough, or of a relevant content, to achieve a desired level of insightinto the communication thread or an underlying activity associated withthe communication thread. In some embodiments, notification process 10may also reduce the overall number of updates to the communicationthread that are received by the user, such that the time and overheadexpended by the user in managing the updates to the communication threadmay be reduced to an appropriate level.

Consistent with the foregoing, notification process 10 may define 100 arules set associated with a user for participation in a multipartycommunication thread. The rules set associated with the user maygenerally govern whether or not a particular communication within themultiparty communication thread (e.g., an update to the communicationthread) should be provided to the user. As such, the rules may generallygovern when the user should receive a particular update to thecommunication thread, how many updates the user should receive from thecommunication thread, and/or which updates to the communication threadthe user should receive. It will be appreciated that various users (evenas participants in the same multiparty communication thread), mayutilize different rules sets. As such, different users may receivedifferent numbers of updates to the communication thread, may receiveupdates to the communication thread at different frequencies, and/or mayreceive different individual updates to the communication thread.

The rules set may be based upon, at least in part, a number ofcommunications included within the multiparty communication thread. Forexample, the rules may indicate a frequency with which the user shouldreceive updates to the communication thread based upon the number ofcommunications included within the multiparty communication thread. Inan embodiment, such rules may be applied in absolute numerical terms.For example, a rule may provide that the user may receive every tenthupdate to the communication thread, or some other established number. Insome embodiments, a rule may be applied in variable numerical terms. Forexample, for a communication thread having a greater number of updates,the user may receive less frequent updates (in terms of the total numberof updates to the communication thread), while for a communicationthread having a relatively fewer number of updates, the user may receiverelatively more frequent updates. For example, a rule may specify thatthe user may receive one update for every n/5 updates to thecommunication thread, where n may equal the currently total number ofupdates that have been made in the communication thread. Further, insome embodiments, the rules set may specify that the frequency of theupdates to be received by the user may also, or alternatively, be basedupon, at least in part, the number of participants in the communicationthread.

The rules set may be based upon, at least in part, a time-wise aspect ofthe multiparty communication thread. In an embodiment, the rules set mayindicate that the user may receive a specified number of updates to thecommunication thread per specified time period. For example, the rulesset may indicate that the user may receive one update to thecommunication thread every, one update to the communication thread everythree days, or another suitable number of updates per specified timeperiod. In some embodiments, one or more of the number of updates to bereceived and the specified time period may be based upon, at least inpart, a relative number of updates that have been made to thecommunication thread, the number of participants of the communicationthread, and/or one or more additional and/or alternative criteria.Further, in an embodiment, the rules set may indicate that the user mayreceive an update to the communication thread after a specified periodof inactivity. For example, the rules set may indicate that the user mayreceive the most recent update to the communication thread after twodays (or some other specified time period) of inactivity. A time periodof inactivity may, for example, include a time period since the lastupdate to the communication thread was made. According to such anexample, when no updates to the communication thread have been made intwo days, the rules may indicate that the user may receive the lastupdate that was made to the communication thread (i.e., the update madetwo days ago). In such an embodiment, the rules set may, for example,allow the user to ensure that a project or activity does not becomestagnant, or to determine why activity has ceased. In some embodiments,the time period of inactivity may be based upon, at least in part, thetotal number of updates to the communication thread, the number ofparticipants to the communication thread, calendar events (such asweekends, holidays, scheduled absences or activities associated with oneor more participants of the communication thread, etc.), and/or othercriteria.

The rules set may be based upon, at least in part, an indication of acompletion of an action associated with the multiparty communicationthread, and/or another textual or informational attribute associatedwith an update to the communication thread. For example, updates to thecommunication thread may be textually analyzed to determine one or morecontent attributes of the update, to identify key terms, or the like.Based upon, at least in part, the textual analysis of an update, one ormore informational attributes of the update may be determined. Forexample, textual analysis of an update may indicate that a solution hasbeen given, that a project item has been completed, that a problem hasoccurred, etc. According to various embodiments, rules sets may bedefined 100 that may identify different textual or informationalattributes that may trigger delivery of the update to the user.

In some embodiments, the rules set may be based upon, at least in part,one or more explicitly defined, or selected, rules. For example,notification process 10 may provide (e.g., via a graphical userinterface) a user with a variety of rules options (e.g., a numericalfrequency with which updates should be provided, a time-wise frequencywith which updates should be provided, an event-based trigger forproviding updates, a textual or informational trigger for providingupdates, or the like). The user may explicitly select (e.g. via thegraphical user interface) which rules she would like to employ.Similarly, the user may specify rules attributes (e.g., frequencyvalues, time values, textual or informational triggers, etc.) that maybe utilized in connection with notification process 10. Based upon, atleast in part, the user selections and/or rules attributes, notificationprocess 10 may define 100 the rules set associated with the user formanaging updates to a multiparty communication thread.

In some embodiments, notification process 10 may define 100 the rulesset for all multiparty communication threads. In other embodiments,notification process 10 may define 100 the rules set individually foreach multiparty communication thread (e.g., notification process 10 maydefine 100 a different rules set for each different communicationthread). In further embodiments, notification process 10 may define 100a rules set (and/or apply one or more predefined rules sets) to amultiparty communication thread based upon, at least in part, one ormore attributes of the communication thread. Examples of attributes ofthe communication thread may include, for example, a subject of thecommunication thread (e.g., which may be specified by a user and/ordetermined via textual analysis), one or more participants in thecommunication threat (e.g., which may include one or more defined groupsof participants), a number of participants associated with thecommunication thread, and/or another attribute of the communicationthread. In some embodiments, the user may explicitly specify which rulesset should be employed with respect to a communication thread, or acommunication thread having one or more identified attributes. In someembodiments, notification process 10 may define 100 a rules set for auser with respect to a given communication thread based upon, at leastin part, behavioral learning, as generally described below.

The rules set may be based upon, at least in part, a user profileestablished for the user. For example, a user profile established for auser may explicitly identify the rules set for providing the user withupdates to a multiparty communication thread. The user profile mayinclude, for example, a user profile associated with a communicationapplication or platform via which the multiparty communication thread isconducted. Additionally/alternatively, the user profile established forthe user may include a profile included within a directory (such as acorporate LDAP directory, or the like), and/or some other user profile,which may explicitly identify the rules set for managing updates to acommunication thread. In some embodiments, the rules set may be basedupon, at least in part, a user profile established for the user that mayindicate one or more user attributes that may be utilized, at least inpart, to define 100 the rules set. Example of user attributes that maybe used, at least in part, to define 100 the rules set may include, butare not limited to, the user's job role, or title; the user'shierarchical position within an organization, such as a company; asubject or area or interest for the user; a user's background orexperience; as well as other attributes.

The rules set may be based upon, at least in part, a role associatedwith the user. For example, the role of the user may include the user'srole with respect to the content of the communication thread (e.g., aninitiator or the communication thread, an initial recipient of thecommunication thread, a contributor to the communication thread, etc.),the role of the user with respect to other participants in thecommunication thread (e.g., manager, team member, member of a differentdepartment or group, or the like), the role of the user with respect toan organization (e.g., job description such as developer, softwarearchitect, quality assurance engineer, team manager, etc.), or the like.The role of the user may be based upon, e.g., a contextual analysis ofthe communication thread, a user profile (e.g., with an organizationsuch as a company, with a communication platform on which thecommunication thread is conducted, or the like). In an embodiment,notification process 10 may define 100 a rules set based upon the roleassociated with the user. For example, a default set of rules may beassociated with different roles. Based upon a determined role associatedwith the user, notification process 10 may define 100 the default set ofrules for a given role with the user. For example, the rules set defined100 based upon the role associated with the user may be based upon,and/or reflective of, an interplay between the given role and the natureof the communication thread. For example, the user may include amanager, and the communication thread may concern a work item beingperformed by a group of individuals under the user (in her role as amanger). In such a situation, the user, as a manager, may not need, orwant, to receive every update regarding the performance of the workitem. However, the user, in her role as a manager, may wish to be keptgenerally informed as to the progress or state of the work item. Assuch, the rule set defined 100 for the user (as a manager) with respectto the particular communication thread may provide the user withperiodic updates concerning the communication thread. It will beappreciated that different rules sets may be defined based upondifferent roles and different communication thread attributes, asgenerally described above. Further, in some embodiments, a default rulesset may be defined 100 based upon, at least in part, a role associatedwith the user and one or more communication thread attributes, and theuser may modify the default rules set, e.g., based upon one or morepreferences of the user.

The rules set may be based upon, at least in part, a historical behaviorpattern associated with the user for multiparty communication threads.In an embodiment, notification process 10 may monitor the interactionpatters of the user with respect to multiparty communication threadsover time and/or may access data concerning past interactions of theuser. For example, notification process 10 may identify whether the useralways reads updates to a communication thread, never reads updates to acommunication thread, or intermittently (including identifying anassociated frequency) reads updates to a communication thread. Further,notification process 10 may identify one or more attributes of thevarious multiparty communication threats that the user is a participantof, such as topics associated with the communication threads, textualand/or informational attributes of individual updates that the userspends the most and/or least time consuming, the number and identity ofthe other participants of the communication threads, and the like.Further, notification process 10 may identify various roles of the userwith respect to subject matter, participants, and the like of variousdifferent multiparty communication threads that the user is aparticipant of. Based upon, at least in part, various correlationsbetween consumption of updates (e.g., how often, in what manner, etc.does the user read updates to the communication threads), communicationthread attributes, and roles associated with the user (with respect tothe communication threads, the other participants of the communicationthread, etc.), notification process 10 may define a rules set basedupon, at least in part, the behavior patterns of the user. It will beappreciated that as the user interacts with an increasing number ofmultiparty communication threads, the behavior patterns of the user maybecome more pronounced and/or discernable, e.g., which may allow thedefined 100 rules to be further refined over time. Additionally, in somesituations, a user's behavior may change over time. As a result of suchchanged behaviors, notification process 10 may define 100 a changed ruleset associated with the user.

Notification process 10 may also evaluate 102 a plurality ofcommunications associated with the multiparty communication thread. Forexample, when an update to a multiparty communication thread is created(and/or as time elapses since the last update was created), notificationprocess 10 may evaluate the communications associated with themultiparty communication thread based upon the defined 100 rules set. Asa result of evaluating 102 the plurality of communications associatedwith the multiparty communication thread, notification process may alsodetermine 104 when a given communication associated with the multipartycommunication thread satisfies one or more of the rules included withinthe rules set. For example, for a defined 100 rule that the user shouldreceive every 20^(th) update to the communication thread, when an updateto the communication thread is created by a participant of the thread,notification process 10 may evaluate the update based upon the rule,e.g., to determine how many updates have been created since the lastupdate was received by the user. If notification process 10 determines104 that 19 previous updates have been created since the last update wasreceived by the user, notification process 10 may determine 104 that thecurrent update (i.e., the 20^(th) update) satisfies a rule within therules set. As discussed above, the defined 100 rules set may include aplurality of different rules. As such, notification process 10 maysimilarly evaluate 102 the plurality of communications associated withthe communication thread with respect to each of the rules includedwithin the rules set. Further, communication process 10 may determine104 when a given communication satisfies any of the rules within thedefined rules set.

Notification process 10 may further deliver 106 the given communicationbased upon, at least in part, a determining that the given communicationsatisfies the one or more rules. Continuing with the above example, asthe most recently created communication may be the 20^(th) communicationsince the last update with received by the user, notification process 10may deliver 106 the most recently created communication to the user,consistent with the defined rules set. In a situation in which the givencommunication does not satisfy a rule included within the rules set,notification process 10 may not deliver the given communication to theuser. In some embodiments, communications that are not delivered to theuser may be never transmitted to the user, may be deleted (e.g., from aninbox for communications associated with the user), may be automaticallyfiled in a designated directory, and/or may be otherwise manages. Itwill be appreciated that notification process 10 may define one or morerules for managing communications that do not satisfy one or more ruleswithin the rules set. In a similar manner as discussed above fordefining 100 the rules set, rules for managing communications that arenot delivered may be explicitly defined, defined based upon a role ofthe user, defined based upon behavioral analysis of the user, and/or maybe otherwise defined.

Referring also to FIG. 3, there is shown a diagrammatic view ofcomputing system 12. While computing system 12 is shown in this figure,this is for illustrative purposes only and is not intended to be alimitation of this disclosure, as other configuration are possible. Forexample, any computing device capable of executing, in whole or in part,notification process 10 may be substituted for computing device 12within FIG. 3, examples of which may include but are not limited toclient electronic devices 28, 30, 32, 34.

Computing system 12 may include microprocessor 200 configured to e.g.,process data and execute instructions/code for notification process 10.Microprocessor 200 may be coupled to storage device 16. As discussedabove, examples of storage device 16 may include but are not limited to:a hard disk drive; a tape drive; an optical drive; a RAID device; an NASdevice, a Storage Area Network, a random access memory (RAM); aread-only memory (ROM); and all forms of flash memory storage devices.IO controller 202 may be configured to couple microprocessor 200 withvarious devices, such as keyboard 204, mouse 206, USB ports (not shown),and printer ports (not shown). Display adaptor 208 may be configured tocouple display 210 (e.g., a CRT or LCD monitor) with microprocessor 200,while network adapter 212 (e.g., an Ethernet adapter) may be configuredto couple microprocessor 200 to network 14 (e.g., the Internet or alocal area network).

The present invention may be a system, a method, and/or a computerprogram product. The computer program product may include a computerreadable storage medium (or media) having computer readable programinstructions thereon for causing a processor to carry out aspects of thepresent invention.

The computer readable storage medium can be a tangible device that canretain and store instructions for use by an instruction executiondevice. The computer readable storage medium may be, for example, but isnot limited to, an electronic storage device, a magnetic storage device,an optical storage device, an electromagnetic storage device, asemiconductor storage device, or any suitable combination of theforegoing. A non-exhaustive list of more specific examples of thecomputer readable storage medium includes the following: a portablecomputer diskette, a hard disk, a random access memory (RAM), aread-only memory (ROM), an erasable programmable read-only memory (EPROMor Flash memory), a static random access memory (SRAM), a portablecompact disc read-only memory (CD-ROM), a digital versatile disk (DVD),a memory stick, a floppy disk, a mechanically encoded device such aspunch-cards or raised structures in a groove having instructionsrecorded thereon, and any suitable combination of the foregoing. Acomputer readable storage medium, as used herein, is not to be construedas being transitory signals per se, such as radio waves or other freelypropagating electromagnetic waves, electromagnetic waves propagatingthrough a waveguide or other transmission media (e.g., light pulsespassing through a fiber-optic cable), or electrical signals transmittedthrough a wire.

Computer readable program instructions described herein can bedownloaded to respective computing/processing devices from a computerreadable storage medium or to an external computer or external storagedevice via a network, for example, the Internet, a local area network, awide area network and/or a wireless network. The network may comprisecopper transmission cables, optical transmission fibers, wirelesstransmission, routers, firewalls, switches, gateway computers and/oredge servers. A network adapter card or network interface in eachcomputing/processing device receives computer readable programinstructions from the network and forwards the computer readable programinstructions for storage in a computer readable storage medium withinthe respective computing/processing device.

Computer readable program instructions for carrying out operations ofthe present invention may be assembler instructions,instruction-set-architecture (ISA) instructions, machine instructions,machine dependent instructions, microcode, firmware instructions,state-setting data, or either source code or object code written in anycombination of one or more programming languages, including an objectoriented programming language such as Smalltalk, C++ or the like, andconventional procedural programming languages, such as the “C”programming language or similar programming languages. The computerreadable program instructions may execute entirely on the user'scomputer, partly on the user's computer, as a stand-alone softwarepackage, partly on the user's computer and partly on a remote computeror entirely on the remote computer or server. In the latter scenario,the remote computer may be connected to the user's computer through anytype of network, including a local area network (LAN) or a wide areanetwork (WAN), or the connection may be made to an external computer(for example, through the Internet using an Internet Service Provider).In some embodiments, electronic circuitry including, for example,programmable logic circuitry, field-programmable gate arrays (FPGA), orprogrammable logic arrays (PLA) may execute the computer readableprogram instructions by utilizing state information of the computerreadable program instructions to personalize the electronic circuitry,in order to perform aspects of the present invention.

Aspects of the present invention are described herein with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems), and computer program products according to embodiments of theinvention. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer readable program instructions.

These computer readable program instructions may be provided to aprocessor of a general purpose computer, special purpose computer, orother programmable data processing apparatus to produce a machine, suchthat the instructions, which execute via the processor of the computeror other programmable data processing apparatus, create means forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks. These computer readable program instructionsmay also be stored in a computer readable storage medium that can directa computer, a programmable data processing apparatus, and/or otherdevices to function in a particular manner, such that the computerreadable storage medium having instructions stored therein comprises anarticle of manufacture including instructions which implement aspects ofthe function/act specified in the flowchart and/or block diagram blockor blocks.

The computer readable program instructions may also be loaded onto acomputer, other programmable data processing apparatus, or other deviceto cause a series of operational steps to be performed on the computer,other programmable apparatus or other device to produce a computerimplemented process, such that the instructions which execute on thecomputer, other programmable apparatus, or other device implement thefunctions/acts specified in the flowchart and/or block diagram block orblocks.

The flowchart and block diagrams in the Figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods, and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof instructions, which comprises one or more executable instructions forimplementing the specified logical function(s). In some alternativeimplementations, the functions noted in the block may occur out of theorder noted in the figures. For example, two blocks shown in successionmay, in fact, be executed substantially concurrently, or the blocks maysometimes be executed in the reverse order, depending upon thefunctionality involved. It will also be noted that each block of theblock diagrams and/or flowchart illustration, and combinations of blocksin the block diagrams and/or flowchart illustration, can be implementedby special purpose hardware-based systems that perform the specifiedfunctions or acts or carry out combinations of special purpose hardwareand computer instructions.

The terminology used herein is for the purpose of describing particularembodiments only and is not intended to be limiting of the disclosure.As used herein, the singular forms “a”, “an” and “the” are intended toinclude the plural forms as well, unless the context clearly indicatesotherwise. It will be further understood that the terms “comprises”and/or “comprising,” when used in this specification, specify thepresence of stated features, integers, steps, operations, elements,and/or components, but do not preclude the presence or addition of oneor more other features, integers, steps, operations, elements,components, and/or groups thereof.

The corresponding structures, materials, acts, and equivalents of allmeans or step plus function elements in the claims below are intended toinclude any structure, material, or act for performing the function incombination with other claimed elements as specifically claimed. Thedescription of the present disclosure has been presented for purposes ofillustration and description, but is not intended to be exhaustive orlimited to the disclosure in the form disclosed. Many modifications andvariations will be apparent to those of ordinary skill in the artwithout departing from the scope and spirit of the disclosure. Theembodiment was chosen and described in order to best explain theprinciples of the disclosure and the practical application, and toenable others of ordinary skill in the art to understand the disclosurefor various embodiments with various modifications as are suited to theparticular use contemplated.

Having thus described the disclosure of the present application indetail and by reference to embodiments thereof, it will be apparent thatmodifications and variations are possible without departing from thescope of the disclosure defined in the appended claims.

What is claimed is:
 1. A computer-implemented method comprising:defining, by a processor, a rules set associated with a user forparticipation in a multiparty communication thread; evaluating, by theprocessor, a plurality of communications associated with the multipartycommunication thread; determining, by the processor, when a givencommunication associated with the multiparty communication threadsatisfies one or more of the rules included within the rules set; anddelivering, by the processor, the given communication based upon, atleast in part, a determining that the given communication satisfies theone or more rules.
 2. The computer-implemented method of claim 1,wherein the rules set is based upon, at least in part, a user profileestablished for the user.
 3. The computer-implemented method of claim 1,wherein the rules set is based upon, at least in part, a role associatedwith the user.
 4. The computer-implemented method of claim 1, whereinthe rules set is based upon, at least in part, a historical behaviorpattern associated with the user for multiparty communication threads.5. The computer-implemented method of claim 1, wherein the rules set isbased upon, at least in part, a number of communications included withinthe multiparty communication thread.
 6. The computer-implemented methodof claim 1, wherein the rules set is based upon, at least in part, atime-wise aspect of the multiparty communication thread.
 7. Thecomputer-implemented method of claim 1, wherein the rules set is basedupon, at least in part, an indication of a completion of an actionassociated with the multiparty communication thread.
 8. A computerprogram product comprising a non-transitory computer-readable mediumhaving a plurality of instructions stored thereon, which, when executedby a processor, cause the processor to perform operations comprising:defining a rules set associated with a user for participation in amultiparty communication thread; evaluating a plurality ofcommunications associated with the multiparty communication thread;determining when a given communication associated with the multipartycommunication thread satisfies one or more of the rules included withinthe rules set; and delivering the given communication based upon, atleast in part, a determining that the given communication satisfies theone or more rules.
 9. The computer program product of claim 8, whereinthe rules set is based upon, at least in part, a user profileestablished for the user.
 10. The computer program product of claim 8,wherein the rules set is based upon, at least in part, a role associatedwith the user.
 11. The computer program product of claim 8, wherein therules set is based upon, at least in part, a historical behavior patternassociated with the user for multiparty communication threads.
 12. Thecomputer program product of claim 8, wherein the rules set is basedupon, at least in part, a number of communications included within themultiparty communication thread.
 13. The computer program product ofclaim 8, wherein the rules set is based upon, at least in part, atime-wise aspect of the multiparty communication thread.
 14. Thecomputer program product of claim 8, wherein the rules set is basedupon, at least in part, an indication of a completion of an actionassociated with the multiparty communication thread.
 15. A computingsystem comprising: a processor device; and a memory architecture coupledwith the processor device; wherein the processor device is configuredfor: defining a rules set associated with a user for participation in amultiparty communication thread; evaluating a plurality ofcommunications associated with the multiparty communication thread;determining when a given communication associated with the multipartycommunication thread satisfies one or more of the rules included withinthe rules set; and delivering the given communication based upon, atleast in part, a determining that the given communication satisfies theone or more rules.
 16. The computing system of claim 15, wherein therules set is based upon, at least in part, a user profile establishedfor the user.
 17. The computing system of claim 15, wherein the rulesset is based upon, at least in part, a role associated with the user.18. The computing system of claim 15, wherein the rules set is basedupon, at least in part, a historical behavior pattern associated withthe user for multiparty communication threads.
 19. The computing systemof claim 15, wherein the rules set is based upon, at least in part, anumber of communications included within the multiparty communicationthread.
 20. The computing system of claim 15, wherein the rules set isbased upon, at least in part, a time-wise aspect of the multipartycommunication thread.